Skip to content

ECS wrapper for the sound system - #590

Open
IsaacLic wants to merge 9 commits into
MovingBlocks:developfrom
IsaacLic:ecsSound
Open

ECS wrapper for the sound system#590
IsaacLic wants to merge 9 commits into
MovingBlocks:developfrom
IsaacLic:ecsSound

Conversation

@IsaacLic

@IsaacLic IsaacLic commented Mar 5, 2021

Copy link
Copy Markdown
Contributor

Description

This is an ECS-based method for playing sounds. It makes use of the existing OggSoundManager, but adds support for entities. It also adds a MaterialType enum, currently only used for determining which sounds to play. In addition, it removes the duplicate, unused classes from game/sounds, which were identical to classes with the same names in assets/sounds.

There are three types of sound-playing added:

  • If an entity takes damage, if there is a specified damage sound for the type of damage and the material of the entity, a sound will be played.
  • When an entity experiences a collision, a collision sound is played based on the entity's type of material.
  • If a specific sound should be played, a SoundEvent can be sent.

This PR also adds in Asteroid's AsteroidCrack sound, which is the sound played when an asteroid gets destroyed.

Testing

  • Collide with the golden asteroid. It should make a sound when collided with.
  • Shoot the asteroid. It should make a sound when it gets destroyed (make sure your volume is on! it may need to be on max)

I wasn't able to test the collision sound locally (my setup has a few issues for me to work out), so that one especially needs testing.


Maintainer update (Aug 2026)

Merged forward onto current develop and the June 2021 review addressed, so this can move again. @IsaacLic's original commits and authorship are preserved in history.

Review feedback addressed

The central objection was that the ECS path re-implemented sound selection alongside SpecialSounds rather than reusing it. It now delegates:

  • SpecialSounds has one hit selector, hitSound(MaterialType, DmgType), and one collision selector, collisionSound(MaterialType). Both return Optional rather than null.
  • playHit/playColl gained EntityRef overloads sharing selection, the impulse threshold and volume scaling with the SolObject versions. Only position/material sourcing differs, since an entity carries those as components.
  • SoundPlayingSystem calls those instead of selecting and playing sounds itself.
  • OggSoundManager's two play bodies and two skipLooped methods collapse into one generic private implementation each. All public overloads are unchanged.
  • DamageEvent.getDamageType() returns Optional<DmgType>.
  • DebugHint takes a SolObject, an EntityRef, or neither, via separate constructors instead of arbitrary nulls. (This also restores DebugHint(SolObject, Vector2), which the original branch had widened to a 3-arg constructor.)

Other fixes

  • SoundPlayingSystem and AsteroidSoundSystem used @In field injection. EventReceiverServiceRegistry hands every EventReceiver to the gestalt DI container, which only honours @Inject, so both would have thrown NullPointerException at runtime. Converted to match MoneyDroppingSystem/RubbleBodyCreationSystem.
  • API drift since 2021: Component.copycopyFrom, and getVolume's new SolCam parameter.
  • OggSoundSet.getOggSound() resolves a random sound per call, so the shared play helper takes an already-resolved OggSound — otherwise the debug overlay could name a different sound than the one played.

API changes

Removed Replacement
assets.sound.SpecialSounds.hitSound(boolean, DmgType) hitSound(MaterialType, DmgType) returning Optional. hitSound(m, d)hitSound(m ? METAL : ROCK, d).orElse(null). The new overload also accepts an unknown material, which the boolean form could not express.
game.sound.SpecialSounds assets.sound.SpecialSounds — identical fields and playHit/playColl
game.sound.OggSoundSet assets.sound.OggSoundSet — identical members
game.sound.OggSoundManager assets.sound.OggSoundManager — obtained via DI rather than new; update(SolGame)update(SolGame, float)

Every other public/protected symbol on develop is unchanged; verified by javap-diffing each touched class against develop. Everything else here is additive. The game.sound deletions are the last commit, kept standalone so they can be dropped or taken separately.

Testing

./gradlew clean :engine:compileJava :desktop:compileJava :engine:test — 105 tests, 0 failures, 1 skipped.

Verified in-game with spawnECSAsteroid=true and soundInfo=true:

  • Ramming the golden asteroid plays the collision sound — including the case @IsaacLic noted they couldn't test locally.
  • Shooting it plays the hit sound, and destroying it plays asteroidCrack.

Known limitations (pre-existing, not introduced here)

  • Ball projectiles cannot damage ECS entities. Projectile only sends a DamageEvent when the obstacle is a SolObjectEntityWrapper. PointProjectileBody wraps EntityRef user data explicitly (with a TODO acknowledging it as a patch); BallProjectileBody has no equivalent. So weapons whose projectile config sets physSize > 0 pass through entities without dealing damage — and therefore play no hit or death sound. This is a gameplay gap independent of sound and is unchanged by this PR.
  • Rubble is silent in normal play. RubbleCreationSystem creates rubble entities without a Material component, so the new sound handlers never match them. Adding Material(ROCK) there would make this audible in ordinary play, but that touches recently-merged work and is left as a follow-up.
  • More broadly, the debug asteroid in SolApplication is still the only entity in the game carrying a Material component, so this feature is not yet reachable in normal gameplay.

@IsaacLic
IsaacLic marked this pull request as ready for review March 9, 2021 02:44

@NicholasBatesNZ NicholasBatesNZ left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lots of good work here, thanks. And sorry for the extended delay :(
You may have to explain some things to me if I don't understand it properly :)

Comment thread engine/src/main/java/org/destinationsol/assets/sound/SpecialSounds.java Outdated
Comment thread engine/src/main/java/org/destinationsol/game/sound/DebugHint.java Outdated
Comment thread engine/src/main/java/org/destinationsol/health/events/DamageEvent.java Outdated
Comment thread engine/src/main/java/org/destinationsol/sound/systems/SoundPlayingSystem.java Outdated
Comment thread engine/src/main/java/org/destinationsol/sound/systems/SoundPlayingSystem.java Outdated
Comment thread engine/src/main/java/org/destinationsol/assets/sound/OggSoundManager.java Outdated
Comment thread engine/src/main/java/org/destinationsol/assets/sound/SpecialSounds.java Outdated
@Cervator

Cervator commented Sep 3, 2021

Copy link
Copy Markdown
Member

NicholasBatesNZ and others added 3 commits August 15, 2026 10:11
# Conflicts:
#	engine/src/main/java/org/destinationsol/SolApplication.java
#	engine/src/main/java/org/destinationsol/game/SolGame.java
Addresses the review on MovingBlocks#590.

The ECS sound path re-implemented sound selection and playback alongside
the existing SolObject path instead of reusing it. It now delegates:

- SpecialSounds.hitSound(MaterialType, DmgType) is the single hit-sound
  selector, replacing both hitSound(boolean, DmgType) and the added
  getHitSound(MaterialType, DmgType). collisionSound(MaterialType)
  likewise. Both return Optional rather than null.
- SpecialSounds gains playHit and playColl overloads that take an
  EntityRef. They share selection, thresholds and volume scaling with
  the SolObject versions; only the position and material sourcing
  differ, since an entity carries those as components.
- SoundPlayingSystem calls those instead of selecting and playing sounds
  itself, and uses the impulse's contact position for collisions, as
  SolContactListener already does for SolObjects.
- OggSoundManager's two play(...) paths and two skipLooped(...) methods
  collapse into one generic implementation each, parameterised by the
  loop-bookkeeping map. The resolved OggSound is returned from the
  shared method so that a PlayableSound backed by an OggSoundSet is not
  sampled twice for one playback.
- DamageEvent.getDamageType() returns Optional<DmgType>.
- DebugHint takes a SolObject, an EntityRef, or neither, through
  separate constructors instead of arbitrary nulls.

SoundPlayingSystem and AsteroidSoundSystem used @in field injection,
which the gestalt DI container that instantiates EventReceivers does not
populate; they would have thrown NullPointerException at runtime. Both
now use javax.inject.Inject, matching the other systems.

Also fixes Component.copy -> copyFrom on the new Material component, the
getVolume signature change, and a typo in SoundEvent.volumeMultiplier.

Co-authored-by: IsaacLic <IsaacLic@users.noreply.github.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
OggSoundManager, OggSoundSet and SpecialSounds existed in both
org.destinationsol.game.sound and org.destinationsol.assets.sound. Only
the assets.sound copies are wired up: every consumer in engine, desktop
and the tests imports org.destinationsol.assets.sound.*, and the
game.sound copies were referenced only by each other. They have been
dead since the assets.sound versions were introduced.

The rest of the game.sound package is untouched. DebugHint and
DebugHintDrawer are still live -- assets.sound.OggSoundManager imports
DebugHintDrawer -- so the package and its @API export remain.

Originally spotted by IsaacLic in MovingBlocks#590.

Co-authored-by: IsaacLic <IsaacLic@users.noreply.github.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Aug 14, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 472 files, which is 372 over the limit of 100.

To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

Usage-priced reviews support at most 300 files.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: d550a6c5-6eee-4c3f-b191-940b5727f948

📥 Commits

Reviewing files that changed from the base of the PR and between 134894b and c6a4e74.

⛔ Files ignored due to path filters (13)
  • engine/src/main/resources/org/destinationsol/assets/textures/icons/iconEngine.png is excluded by !**/*.png
  • engine/src/main/resources/org/destinationsol/assets/textures/smallGameObjects/rubble_0.png is excluded by !**/*.png
  • engine/src/main/resources/org/destinationsol/assets/textures/smallGameObjects/rubble_1.png is excluded by !**/*.png
  • engine/src/main/resources/org/destinationsol/assets/textures/smallGameObjects/rubble_2.png is excluded by !**/*.png
  • engine/src/main/resources/org/destinationsol/assets/textures/ui/keyboardKey.png is excluded by !**/*.png
  • engine/src/main/resources/org/destinationsol/assets/textures/ui/mouseClickLeft.png is excluded by !**/*.png
  • engine/src/main/resources/org/destinationsol/assets/textures/ui/mouseClickRight.png is excluded by !**/*.png
  • engine/src/main/resources/org/destinationsol/assets/textures/ui/nui/background.png is excluded by !**/*.png
  • engine/src/main/resources/org/destinationsol/assets/textures/ui/nui/buttonDisabled.png is excluded by !**/*.png
  • engine/src/main/resources/org/destinationsol/assets/textures/ui/nui/buttonWarn.png is excluded by !**/*.png
  • gradle/wrapper/groovy-wrapper.jar is excluded by !**/*.jar
  • modules/core/assets/items/guns/minerGun/minerGun.png is excluded by !**/*.png
  • modules/core/assets/items/guns/minerGun/minerGunIcon.png is excluded by !**/*.png
📒 Files selected for processing (472)
  • .github/CONTRIBUTING.md
  • .github/ISSUE_TEMPLATE/bug_report.yaml
  • .gitignore
  • Jenkinsfile
  • README.md
  • build-logic/build.gradle
  • build-logic/settings.gradle
  • build-logic/src/main/groovy/destination-sol-common.gradle
  • build-logic/src/main/groovy/destination-sol-constants.gradle
  • build-logic/src/main/groovy/destination-sol-ide.gradle
  • build-logic/src/main/groovy/destination-sol-java.gradle
  • build-logic/src/main/groovy/destination-sol-jre.gradle
  • build-logic/src/main/groovy/destination-sol-module.gradle
  • build-logic/src/main/groovy/destination-sol-repositories.gradle
  • build-logic/src/main/groovy/gestalt-8-module.gradle
  • build-logic/src/main/groovy/gestalt-module.gradle
  • build-logic/src/main/groovy/gestalt-repositories.gradle
  • build-logic/src/main/groovy/terasology-metrics.gradle
  • build-logic/src/main/groovy/terasology-publish-common.gradle
  • build.gradle
  • config/gradle/common.gradle
  • config/gradle/ide.gradle
  • config/groovy/common.groovy
  • config/groovy/lib.groovy
  • config/groovy/module.groovy
  • config/groovy/util.groovy
  • desktop/build.gradle
  • desktop/src/main/java/org/destinationsol/desktop/SolDesktop.java
  • engine/build.gradle
  • engine/src/main/java/org/destinationsol/BeanClassFactory.java
  • engine/src/main/java/org/destinationsol/CommonDrawer.java
  • engine/src/main/java/org/destinationsol/Const.java
  • engine/src/main/java/org/destinationsol/ContextWrapper.java
  • engine/src/main/java/org/destinationsol/ContextWrapperService.java
  • engine/src/main/java/org/destinationsol/CoreService.java
  • engine/src/main/java/org/destinationsol/EventReceiverServiceRegistry.java
  • engine/src/main/java/org/destinationsol/FactionDisplay.java
  • engine/src/main/java/org/destinationsol/GameConfigurationServiceRegistry.java
  • engine/src/main/java/org/destinationsol/GameOptions.java
  • engine/src/main/java/org/destinationsol/SolApplication.java
  • engine/src/main/java/org/destinationsol/SolGameServiceRegistry.java
  • engine/src/main/java/org/destinationsol/assets/AssetHelper.java
  • engine/src/main/java/org/destinationsol/assets/Assets.java
  • engine/src/main/java/org/destinationsol/assets/emitters/EmitterFactory.java
  • engine/src/main/java/org/destinationsol/assets/emitters/EmitterFileFormat.java
  • engine/src/main/java/org/destinationsol/assets/emitters/package-info.java
  • engine/src/main/java/org/destinationsol/assets/fonts/Font.java
  • engine/src/main/java/org/destinationsol/assets/fonts/FontFactory.java
  • engine/src/main/java/org/destinationsol/assets/fonts/FontFileFormat.java
  • engine/src/main/java/org/destinationsol/assets/fonts/ScaledFontProducer.java
  • engine/src/main/java/org/destinationsol/assets/fonts/UIFont.java
  • engine/src/main/java/org/destinationsol/assets/fonts/package-info.java
  • engine/src/main/java/org/destinationsol/assets/json/Json.java
  • engine/src/main/java/org/destinationsol/assets/json/JsonDeltaFileFormat.java
  • engine/src/main/java/org/destinationsol/assets/json/JsonFactory.java
  • engine/src/main/java/org/destinationsol/assets/json/JsonFileFormat.java
  • engine/src/main/java/org/destinationsol/assets/json/package-info.java
  • engine/src/main/java/org/destinationsol/assets/music/AndroidOggMusicFileFormat.java
  • engine/src/main/java/org/destinationsol/assets/music/OggMusicFactory.java
  • engine/src/main/java/org/destinationsol/assets/music/OggMusicFileFormat.java
  • engine/src/main/java/org/destinationsol/assets/music/OggMusicManager.java
  • engine/src/main/java/org/destinationsol/assets/package-info.java
  • engine/src/main/java/org/destinationsol/assets/sound/AndroidOggSoundFileFormat.java
  • engine/src/main/java/org/destinationsol/assets/sound/OggSoundFactory.java
  • engine/src/main/java/org/destinationsol/assets/sound/OggSoundFileFormat.java
  • engine/src/main/java/org/destinationsol/assets/sound/OggSoundInfoFormat.java
  • engine/src/main/java/org/destinationsol/assets/sound/OggSoundManager.java
  • engine/src/main/java/org/destinationsol/assets/sound/SpecialSounds.java
  • engine/src/main/java/org/destinationsol/assets/textures/DSTexture.java
  • engine/src/main/java/org/destinationsol/assets/textures/DSTextureFactory.java
  • engine/src/main/java/org/destinationsol/assets/textures/DSTextureFileFormat.java
  • engine/src/main/java/org/destinationsol/assets/textures/package-info.java
  • engine/src/main/java/org/destinationsol/assets/ui/KeyboardKeyTypeAdapter.java
  • engine/src/main/java/org/destinationsol/assets/ui/UIFormat.java
  • engine/src/main/java/org/destinationsol/assets/ui/UISkinFormat.java
  • engine/src/main/java/org/destinationsol/asteroids/systems/AsteroidBodyCreationSystem.java
  • engine/src/main/java/org/destinationsol/asteroids/systems/AsteroidSoundSystem.java
  • engine/src/main/java/org/destinationsol/body/components/BodyLinked.java
  • engine/src/main/java/org/destinationsol/body/systems/BodyHandlerSystem.java
  • engine/src/main/java/org/destinationsol/body/systems/BodyUpdateSystem.java
  • engine/src/main/java/org/destinationsol/common/In.java
  • engine/src/main/java/org/destinationsol/common/package-info.java
  • engine/src/main/java/org/destinationsol/entitysystem/ComponentSystem.java
  • engine/src/main/java/org/destinationsol/entitysystem/ComponentSystemManager.java
  • engine/src/main/java/org/destinationsol/entitysystem/EntitySystemManager.java
  • engine/src/main/java/org/destinationsol/entitysystem/EventReceiver.java
  • engine/src/main/java/org/destinationsol/entitysystem/SerialisationManager.java
  • engine/src/main/java/org/destinationsol/entitysystem/package-info.java
  • engine/src/main/java/org/destinationsol/files/HullConfigManager.java
  • engine/src/main/java/org/destinationsol/files/package-info.java
  • engine/src/main/java/org/destinationsol/force/components/Durability.java
  • engine/src/main/java/org/destinationsol/force/systems/ImpulseHandlingSystem.java
  • engine/src/main/java/org/destinationsol/game/AbilityCommonConfig.java
  • engine/src/main/java/org/destinationsol/game/AbilityCommonConfigs.java
  • engine/src/main/java/org/destinationsol/game/BeaconHandler.java
  • engine/src/main/java/org/destinationsol/game/CamRotStrategy.java
  • engine/src/main/java/org/destinationsol/game/DebugOptions.java
  • engine/src/main/java/org/destinationsol/game/FactionInfo.java
  • engine/src/main/java/org/destinationsol/game/FactionManager.java
  • engine/src/main/java/org/destinationsol/game/GalaxyFiller.java
  • engine/src/main/java/org/destinationsol/game/GameColors.java
  • engine/src/main/java/org/destinationsol/game/GameDrawer.java
  • engine/src/main/java/org/destinationsol/game/GridDrawer.java
  • engine/src/main/java/org/destinationsol/game/HardnessCalc.java
  • engine/src/main/java/org/destinationsol/game/Hero.java
  • engine/src/main/java/org/destinationsol/game/MapDrawer.java
  • engine/src/main/java/org/destinationsol/game/MountDetectDrawer.java
  • engine/src/main/java/org/destinationsol/game/ObjectManager.java
  • engine/src/main/java/org/destinationsol/game/PlayerCreator.java
  • engine/src/main/java/org/destinationsol/game/Rubble.java
  • engine/src/main/java/org/destinationsol/game/RubbleBuilder.java
  • engine/src/main/java/org/destinationsol/game/SaveManager.java
  • engine/src/main/java/org/destinationsol/game/ShipConfig.java
  • engine/src/main/java/org/destinationsol/game/SolCam.java
  • engine/src/main/java/org/destinationsol/game/SolContactListener.java
  • engine/src/main/java/org/destinationsol/game/SolGame.java
  • engine/src/main/java/org/destinationsol/game/SolObject.java
  • engine/src/main/java/org/destinationsol/game/SolObjectEntityWrapper.java
  • engine/src/main/java/org/destinationsol/game/StarPort.java
  • engine/src/main/java/org/destinationsol/game/UpdateAwareSystem.java
  • engine/src/main/java/org/destinationsol/game/WorldConfig.java
  • engine/src/main/java/org/destinationsol/game/asteroid/Asteroid.java
  • engine/src/main/java/org/destinationsol/game/asteroid/AsteroidBuilder.java
  • engine/src/main/java/org/destinationsol/game/asteroid/package-info.java
  • engine/src/main/java/org/destinationsol/game/attributes/RegisterUpdateSystem.java
  • engine/src/main/java/org/destinationsol/game/attributes/package-info.java
  • engine/src/main/java/org/destinationsol/game/chunk/ChunkFiller.java
  • engine/src/main/java/org/destinationsol/game/chunk/ChunkManager.java
  • engine/src/main/java/org/destinationsol/game/chunk/package-info.java
  • engine/src/main/java/org/destinationsol/game/console/ConsoleImpl.java
  • engine/src/main/java/org/destinationsol/game/console/MethodCommand.java
  • engine/src/main/java/org/destinationsol/game/console/adapter/ParameterAdapter.java
  • engine/src/main/java/org/destinationsol/game/console/adapter/ParameterAdapterManager.java
  • engine/src/main/java/org/destinationsol/game/console/annotations/RegisterCommands.java
  • engine/src/main/java/org/destinationsol/game/console/annotations/package-info.java
  • engine/src/main/java/org/destinationsol/game/console/commands/DieCommandHandler.java
  • engine/src/main/java/org/destinationsol/game/console/commands/ShowNUIScreenCommandHandler.java
  • engine/src/main/java/org/destinationsol/game/console/commands/package-info.java
  • engine/src/main/java/org/destinationsol/game/console/package-info.java
  • engine/src/main/java/org/destinationsol/game/console/suggesters/package-info.java
  • engine/src/main/java/org/destinationsol/game/drawables/DrawableDebugger.java
  • engine/src/main/java/org/destinationsol/game/drawables/DrawableManager.java
  • engine/src/main/java/org/destinationsol/game/drawables/DrawableObject.java
  • engine/src/main/java/org/destinationsol/game/drawables/SpriteManager.java
  • engine/src/main/java/org/destinationsol/game/drawables/animated/AnimatedRectSprite.java
  • engine/src/main/java/org/destinationsol/game/drawables/package-info.java
  • engine/src/main/java/org/destinationsol/game/faction/DamageInflictedReputationEvent.java
  • engine/src/main/java/org/destinationsol/game/faction/DefaultReputationEvent.java
  • engine/src/main/java/org/destinationsol/game/faction/Faction.java
  • engine/src/main/java/org/destinationsol/game/faction/FactionConfig.java
  • engine/src/main/java/org/destinationsol/game/faction/FactionsConfigs.java
  • engine/src/main/java/org/destinationsol/game/faction/ReputationEvent.java
  • engine/src/main/java/org/destinationsol/game/farBg/FarBackgroundManagerOld.java
  • engine/src/main/java/org/destinationsol/game/gun/GunMount.java
  • engine/src/main/java/org/destinationsol/game/gun/SolGun.java
  • engine/src/main/java/org/destinationsol/game/gun/package-info.java
  • engine/src/main/java/org/destinationsol/game/input/AiPilot.java
  • engine/src/main/java/org/destinationsol/game/input/BigObjAvoider.java
  • engine/src/main/java/org/destinationsol/game/input/ExplorerDestProvider.java
  • engine/src/main/java/org/destinationsol/game/input/Pilot.java
  • engine/src/main/java/org/destinationsol/game/input/UiControlledPilot.java
  • engine/src/main/java/org/destinationsol/game/input/package-info.java
  • engine/src/main/java/org/destinationsol/game/item/Engine.java
  • engine/src/main/java/org/destinationsol/game/item/ItemManager.java
  • engine/src/main/java/org/destinationsol/game/item/Loot.java
  • engine/src/main/java/org/destinationsol/game/item/LootBuilder.java
  • engine/src/main/java/org/destinationsol/game/item/SolItemTypes.java
  • engine/src/main/java/org/destinationsol/game/item/package-info.java
  • engine/src/main/java/org/destinationsol/game/maze/Maze.java
  • engine/src/main/java/org/destinationsol/game/maze/MazeBuilder.java
  • engine/src/main/java/org/destinationsol/game/maze/MazeConfigManager.java
  • engine/src/main/java/org/destinationsol/game/maze/MazeLayout.java
  • engine/src/main/java/org/destinationsol/game/maze/MazeLayoutBuilder.java
  • engine/src/main/java/org/destinationsol/game/maze/MazeLayoutManager.java
  • engine/src/main/java/org/destinationsol/game/maze/MazeTileObject.java
  • engine/src/main/java/org/destinationsol/game/maze/package-info.java
  • engine/src/main/java/org/destinationsol/game/package-info.java
  • engine/src/main/java/org/destinationsol/game/particle/EffectTypes.java
  • engine/src/main/java/org/destinationsol/game/particle/LightObject.java
  • engine/src/main/java/org/destinationsol/game/particle/PartMan.java
  • engine/src/main/java/org/destinationsol/game/particle/SpecialEffects.java
  • engine/src/main/java/org/destinationsol/game/particle/package-info.java
  • engine/src/main/java/org/destinationsol/game/planet/BeltConfig.java
  • engine/src/main/java/org/destinationsol/game/planet/BeltConfigManager.java
  • engine/src/main/java/org/destinationsol/game/planet/CloudBuilder.java
  • engine/src/main/java/org/destinationsol/game/planet/OrbitalEnemiesBuilder.java
  • engine/src/main/java/org/destinationsol/game/planet/Planet.java
  • engine/src/main/java/org/destinationsol/game/planet/PlanetConfig.java
  • engine/src/main/java/org/destinationsol/game/planet/PlanetConfigManager.java
  • engine/src/main/java/org/destinationsol/game/planet/PlanetManager.java
  • engine/src/main/java/org/destinationsol/game/planet/PlanetObjectsBuilder.java
  • engine/src/main/java/org/destinationsol/game/planet/PlanetSprites.java
  • engine/src/main/java/org/destinationsol/game/planet/Sky.java
  • engine/src/main/java/org/destinationsol/game/planet/SolarSystem.java
  • engine/src/main/java/org/destinationsol/game/planet/SolarSystemConfig.java
  • engine/src/main/java/org/destinationsol/game/planet/SolarSystemConfigManager.java
  • engine/src/main/java/org/destinationsol/game/planet/SunSingleton.java
  • engine/src/main/java/org/destinationsol/game/planet/SystemBelt.java
  • engine/src/main/java/org/destinationsol/game/planet/SystemsBuilder.java
  • engine/src/main/java/org/destinationsol/game/planet/TileObject.java
  • engine/src/main/java/org/destinationsol/game/planet/package-info.java
  • engine/src/main/java/org/destinationsol/game/projectile/Projectile.java
  • engine/src/main/java/org/destinationsol/game/projectile/package-info.java
  • engine/src/main/java/org/destinationsol/game/screens/BorderDrawer.java
  • engine/src/main/java/org/destinationsol/game/screens/BuyItemsScreen.java
  • engine/src/main/java/org/destinationsol/game/screens/ChangeShipScreen.java
  • engine/src/main/java/org/destinationsol/game/screens/ChooseMercenaryScreen.java
  • engine/src/main/java/org/destinationsol/game/screens/ConsoleScreen.java
  • engine/src/main/java/org/destinationsol/game/screens/GameScreens.java
  • engine/src/main/java/org/destinationsol/game/screens/GiveItemsScreen.java
  • engine/src/main/java/org/destinationsol/game/screens/HireShipsScreen.java
  • engine/src/main/java/org/destinationsol/game/screens/InventoryOperationsScreen.java
  • engine/src/main/java/org/destinationsol/game/screens/InventoryScreen.java
  • engine/src/main/java/org/destinationsol/game/screens/MainGameScreen.java
  • engine/src/main/java/org/destinationsol/game/screens/MapScreen.java
  • engine/src/main/java/org/destinationsol/game/screens/MenuScreen.java
  • engine/src/main/java/org/destinationsol/game/screens/RightPaneLayout.java
  • engine/src/main/java/org/destinationsol/game/screens/SellItems.java
  • engine/src/main/java/org/destinationsol/game/screens/ShipControllerControl.java
  • engine/src/main/java/org/destinationsol/game/screens/ShipMixedControl.java
  • engine/src/main/java/org/destinationsol/game/screens/ShipMouseControl.java
  • engine/src/main/java/org/destinationsol/game/screens/ShowInventory.java
  • engine/src/main/java/org/destinationsol/game/screens/SunWarnDrawer.java
  • engine/src/main/java/org/destinationsol/game/screens/TakeItems.java
  • engine/src/main/java/org/destinationsol/game/screens/TalkScreen.java
  • engine/src/main/java/org/destinationsol/game/screens/WaypointCreationScreen.java
  • engine/src/main/java/org/destinationsol/game/screens/ZoneNameAnnouncer.java
  • engine/src/main/java/org/destinationsol/game/screens/package-info.java
  • engine/src/main/java/org/destinationsol/game/ship/AbilityConfig.java
  • engine/src/main/java/org/destinationsol/game/ship/Door.java
  • engine/src/main/java/org/destinationsol/game/ship/EmWave.java
  • engine/src/main/java/org/destinationsol/game/ship/FarShip.java
  • engine/src/main/java/org/destinationsol/game/ship/ForceBeacon.java
  • engine/src/main/java/org/destinationsol/game/ship/KnockBack.java
  • engine/src/main/java/org/destinationsol/game/ship/ShipBuilder.java
  • engine/src/main/java/org/destinationsol/game/ship/ShipEngine.java
  • engine/src/main/java/org/destinationsol/game/ship/SloMo.java
  • engine/src/main/java/org/destinationsol/game/ship/SolShip.java
  • engine/src/main/java/org/destinationsol/game/ship/Teleport.java
  • engine/src/main/java/org/destinationsol/game/ship/UnShield.java
  • engine/src/main/java/org/destinationsol/game/ship/hulls/Hull.java
  • engine/src/main/java/org/destinationsol/game/ship/hulls/package-info.java
  • engine/src/main/java/org/destinationsol/game/ship/package-info.java
  • engine/src/main/java/org/destinationsol/game/sound/DebugHint.java
  • engine/src/main/java/org/destinationsol/game/sound/DebugHintDrawer.java
  • engine/src/main/java/org/destinationsol/game/sound/OggSoundManager.java
  • engine/src/main/java/org/destinationsol/game/sound/OggSoundSet.java
  • engine/src/main/java/org/destinationsol/game/sound/SpecialSounds.java
  • engine/src/main/java/org/destinationsol/game/sound/package-info.java
  • engine/src/main/java/org/destinationsol/game/tutorial/TutorialManager.java
  • engine/src/main/java/org/destinationsol/game/tutorial/TutorialStep.java
  • engine/src/main/java/org/destinationsol/game/tutorial/steps/ButtonPressStep.java
  • engine/src/main/java/org/destinationsol/game/tutorial/steps/BuyItemStep.java
  • engine/src/main/java/org/destinationsol/game/tutorial/steps/BuyMercenaryStep.java
  • engine/src/main/java/org/destinationsol/game/tutorial/steps/ChangeTutorialSectionStep.java
  • engine/src/main/java/org/destinationsol/game/tutorial/steps/CheckGunReloadStep.java
  • engine/src/main/java/org/destinationsol/game/tutorial/steps/CheckItemEquippedStep.java
  • engine/src/main/java/org/destinationsol/game/tutorial/steps/CloseScreenStep.java
  • engine/src/main/java/org/destinationsol/game/tutorial/steps/CreateWaypointStep.java
  • engine/src/main/java/org/destinationsol/game/tutorial/steps/DestroyObjectsStep.java
  • engine/src/main/java/org/destinationsol/game/tutorial/steps/DestroySpawnedAsteroidAroundHeroStep.java
  • engine/src/main/java/org/destinationsol/game/tutorial/steps/DestroySpawnedShipsStep.java
  • engine/src/main/java/org/destinationsol/game/tutorial/steps/FireGunStep.java
  • engine/src/main/java/org/destinationsol/game/tutorial/steps/FlyToHeroFirstWaypointStep.java
  • engine/src/main/java/org/destinationsol/game/tutorial/steps/FlyToNearestStarPortStep.java
  • engine/src/main/java/org/destinationsol/game/tutorial/steps/FlyToNearestStationStep.java
  • engine/src/main/java/org/destinationsol/game/tutorial/steps/FlyToPlanetSellingMercenariesStep.java
  • engine/src/main/java/org/destinationsol/game/tutorial/steps/FlyToPlanetStep.java
  • engine/src/main/java/org/destinationsol/game/tutorial/steps/FlyToRandomWaypointAroundHeroStep.java
  • engine/src/main/java/org/destinationsol/game/tutorial/steps/FlyToWaypointStep.java
  • engine/src/main/java/org/destinationsol/game/tutorial/steps/ItemTypesExplanationStep.java
  • engine/src/main/java/org/destinationsol/game/tutorial/steps/ManageMercenariesGuidanceStep.java
  • engine/src/main/java/org/destinationsol/game/tutorial/steps/MapDragStep.java
  • engine/src/main/java/org/destinationsol/game/tutorial/steps/MessageStep.java
  • engine/src/main/java/org/destinationsol/game/tutorial/steps/OpenScreenStep.java
  • engine/src/main/java/org/destinationsol/game/tutorial/steps/SelectEquippedWeaponStep.java
  • engine/src/main/java/org/destinationsol/game/tutorial/steps/SlowVelocityStep.java
  • engine/src/main/java/org/destinationsol/game/tutorial/steps/ThrustForwardsStep.java
  • engine/src/main/java/org/destinationsol/game/tutorial/steps/TravelThroughStarPortStep.java
  • engine/src/main/java/org/destinationsol/game/tutorial/steps/TurnLeftRightStep.java
  • engine/src/main/java/org/destinationsol/game/tutorial/steps/UseAbilityStep.java
  • engine/src/main/java/org/destinationsol/game/tutorial/steps/WaitUntilFullyRepairedStep.java
  • engine/src/main/java/org/destinationsol/game/tutorial/steps/package-info.java
  • engine/src/main/java/org/destinationsol/game/tutorial/steps/wrapper/TrackedFarObjectWrapper.java
  • engine/src/main/java/org/destinationsol/game/tutorial/steps/wrapper/TrackedSolObjectWrapper.java
  • engine/src/main/java/org/destinationsol/game/tutorial/steps/wrapper/package-info.java
  • engine/src/main/java/org/destinationsol/health/components/Health.java
  • engine/src/main/java/org/destinationsol/health/events/DamageEvent.java
  • engine/src/main/java/org/destinationsol/health/systems/DamageSystem.java
  • engine/src/main/java/org/destinationsol/location/components/Angle.java
  • engine/src/main/java/org/destinationsol/location/components/Position.java
  • engine/src/main/java/org/destinationsol/location/components/Velocity.java
  • engine/src/main/java/org/destinationsol/location/systems/LocationSystem.java
  • engine/src/main/java/org/destinationsol/material/MaterialType.java
  • engine/src/main/java/org/destinationsol/material/components/Material.java
  • engine/src/main/java/org/destinationsol/menu/InputMapControllerScreen.java
  • engine/src/main/java/org/destinationsol/menu/InputMapKeyboardScreen.java
  • engine/src/main/java/org/destinationsol/menu/InputMapMixedScreen.java
  • engine/src/main/java/org/destinationsol/menu/InputMapOperations.java
  • engine/src/main/java/org/destinationsol/menu/InputMapScreen.java
  • engine/src/main/java/org/destinationsol/menu/LoadingScreen.java
  • engine/src/main/java/org/destinationsol/menu/MainMenuScreen.java
  • engine/src/main/java/org/destinationsol/menu/MenuLayout.java
  • engine/src/main/java/org/destinationsol/menu/MenuScreens.java
  • engine/src/main/java/org/destinationsol/menu/NewGameScreen.java
  • engine/src/main/java/org/destinationsol/menu/NewShipScreen.java
  • engine/src/main/java/org/destinationsol/menu/OptionsScreen.java
  • engine/src/main/java/org/destinationsol/menu/ResolutionScreen.java
  • engine/src/main/java/org/destinationsol/menu/background/MenuBackgroundManager.java
  • engine/src/main/java/org/destinationsol/menu/package-info.java
  • engine/src/main/java/org/destinationsol/mercenary/MercenaryUtils.java
  • engine/src/main/java/org/destinationsol/mercenary/package-info.java
  • engine/src/main/java/org/destinationsol/modules/FacadeModuleConfig.java
  • engine/src/main/java/org/destinationsol/modules/ModuleManager.java
  • engine/src/main/java/org/destinationsol/moneyDropping/systems/MoneyDroppingSystem.java
  • engine/src/main/java/org/destinationsol/removal/systems/DeletionUpdateSystem.java
  • engine/src/main/java/org/destinationsol/removal/systems/DestroyOnZeroHealthSystem.java
  • engine/src/main/java/org/destinationsol/removal/systems/DestructionSystem.java
  • engine/src/main/java/org/destinationsol/rendering/components/Renderable.java
  • engine/src/main/java/org/destinationsol/rendering/systems/RenderingSystem.java
  • engine/src/main/java/org/destinationsol/rubble/components/RubbleMesh.java
  • engine/src/main/java/org/destinationsol/rubble/systems/RubbleBodyCreationSystem.java
  • engine/src/main/java/org/destinationsol/rubble/systems/RubbleCreationSystem.java
  • engine/src/main/java/org/destinationsol/save/SaveData.java
  • engine/src/main/java/org/destinationsol/size/components/Size.java
  • engine/src/main/java/org/destinationsol/sound/events/SoundEvent.java
  • engine/src/main/java/org/destinationsol/sound/systems/SoundPlayingSystem.java
  • engine/src/main/java/org/destinationsol/ui/Position.java
  • engine/src/main/java/org/destinationsol/ui/SolInputManager.java
  • engine/src/main/java/org/destinationsol/ui/SolInputProcessor.java
  • engine/src/main/java/org/destinationsol/ui/SolLayouts.java
  • engine/src/main/java/org/destinationsol/ui/SolUiSlider.java
  • engine/src/main/java/org/destinationsol/ui/TutorialManager.java
  • engine/src/main/java/org/destinationsol/ui/UiDrawer.java
  • engine/src/main/java/org/destinationsol/ui/Waypoint.java
  • engine/src/main/java/org/destinationsol/ui/nui/NUIManager.java
  • engine/src/main/java/org/destinationsol/ui/nui/NUIScreenLayer.java
  • engine/src/main/java/org/destinationsol/ui/nui/package-info.java
  • engine/src/main/java/org/destinationsol/ui/nui/screens/ConsoleScreen.java
  • engine/src/main/java/org/destinationsol/ui/nui/screens/InventoryScreen.java
  • engine/src/main/java/org/destinationsol/ui/nui/screens/MainGameScreen.java
  • engine/src/main/java/org/destinationsol/ui/nui/screens/MapScreen.java
  • engine/src/main/java/org/destinationsol/ui/nui/screens/MenuScreen.java
  • engine/src/main/java/org/destinationsol/ui/nui/screens/TalkScreen.java
  • engine/src/main/java/org/destinationsol/ui/nui/screens/TutorialScreen.java
  • engine/src/main/java/org/destinationsol/ui/nui/screens/UIShipControlsScreen.java
  • engine/src/main/java/org/destinationsol/ui/nui/screens/WaypointCreationScreen.java
  • engine/src/main/java/org/destinationsol/ui/nui/screens/mainMenu/CreditsScreen.java
  • engine/src/main/java/org/destinationsol/ui/nui/screens/mainMenu/InputMapScreen.java
  • engine/src/main/java/org/destinationsol/ui/nui/screens/mainMenu/LoadingScreen.java
  • engine/src/main/java/org/destinationsol/ui/nui/screens/mainMenu/MainMenuScreen.java
  • engine/src/main/java/org/destinationsol/ui/nui/screens/mainMenu/ModulesScreen.java
  • engine/src/main/java/org/destinationsol/ui/nui/screens/mainMenu/NewGameScreen.java
  • engine/src/main/java/org/destinationsol/ui/nui/screens/mainMenu/NewShipScreen.java
  • engine/src/main/java/org/destinationsol/ui/nui/screens/mainMenu/OptionsScreen.java
  • engine/src/main/java/org/destinationsol/ui/nui/screens/mainMenu/ResolutionScreen.java
  • engine/src/main/java/org/destinationsol/ui/nui/screens/package-info.java
  • engine/src/main/java/org/destinationsol/ui/nui/widgets/EmptyIfInvisibleContainer.java
  • engine/src/main/java/org/destinationsol/ui/nui/widgets/InteractHint.java
  • engine/src/main/java/org/destinationsol/ui/nui/widgets/KeyActivatedButton.java
  • engine/src/main/java/org/destinationsol/ui/nui/widgets/UIBackingBox.java
  • engine/src/main/java/org/destinationsol/ui/nui/widgets/UILabelledIcon.java
  • engine/src/main/java/org/destinationsol/ui/nui/widgets/UIWarnButton.java
  • engine/src/main/java/org/destinationsol/ui/nui/widgets/UIWarnDrawer.java
  • engine/src/main/java/org/destinationsol/ui/nui/widgets/package-info.java
  • engine/src/main/java/org/destinationsol/ui/package-info.java
  • engine/src/main/java/org/destinationsol/util/InjectionHelper.java
  • engine/src/main/java/org/destinationsol/world/GalaxyBuilder.java
  • engine/src/main/java/org/destinationsol/world/Orbital.java
  • engine/src/main/java/org/destinationsol/world/generators/BeltGenerator.java
  • engine/src/main/java/org/destinationsol/world/generators/BeltGeneratorImpl.java
  • engine/src/main/java/org/destinationsol/world/generators/DenseBeltGenerator.java
  • engine/src/main/java/org/destinationsol/world/generators/FeatureGenerator.java
  • engine/src/main/java/org/destinationsol/world/generators/LargeSolarSystemGenerator.java
  • engine/src/main/java/org/destinationsol/world/generators/MazeGenerator.java
  • engine/src/main/java/org/destinationsol/world/generators/MazeGeneratorImpl.java
  • engine/src/main/java/org/destinationsol/world/generators/PlanetGenerator.java
  • engine/src/main/java/org/destinationsol/world/generators/PlanetGeneratorImpl.java
  • engine/src/main/java/org/destinationsol/world/generators/SmallMazeGenerator.java
  • engine/src/main/java/org/destinationsol/world/generators/SmallPlanetGenerator.java
  • engine/src/main/java/org/destinationsol/world/generators/SolarSystemGenerator.java
  • engine/src/main/java/org/destinationsol/world/generators/SolarSystemGeneratorImpl.java
  • engine/src/main/java/org/destinationsol/world/generators/SpiralMazeGenerator.java
  • engine/src/main/java/org/destinationsol/world/generators/package-info.java
  • engine/src/main/java/org/destinationsol/world/package-info.java
  • engine/src/main/resources/debugOptions.ini
  • engine/src/main/resources/log4j-debug.properties
  • engine/src/main/resources/org/destinationsol/assets/collisionMeshes/miscCollisionMeshes.json
  • engine/src/main/resources/org/destinationsol/assets/configs/factions.json
  • engine/src/main/resources/org/destinationsol/assets/factions/ehar.json
  • engine/src/main/resources/org/destinationsol/assets/factions/laani.json
  • engine/src/main/resources/org/destinationsol/assets/factions/player.json
  • engine/src/main/resources/org/destinationsol/assets/schemas/schemaAbilitiesConfig.json
  • engine/src/main/resources/org/destinationsol/assets/schemas/schemaFaction.json
  • engine/src/main/resources/org/destinationsol/assets/schemas/schemaFactions.json
  • engine/src/main/resources/org/destinationsol/assets/schemas/schemaMazeLayouts.json
  • engine/src/main/resources/org/destinationsol/assets/skins/default.skin
  • engine/src/main/resources/org/destinationsol/assets/skins/inventoryScreen.skin
  • engine/src/main/resources/org/destinationsol/assets/skins/mainGameScreen.skin
  • engine/src/main/resources/org/destinationsol/assets/skins/mainMenu.skin
  • engine/src/main/resources/org/destinationsol/assets/skins/mapScreen.skin
  • engine/src/main/resources/org/destinationsol/assets/skins/talkScreen.skin
  • engine/src/main/resources/org/destinationsol/assets/skins/tutorialScreen.skin
  • engine/src/main/resources/org/destinationsol/assets/ui/inventoryScreen.ui
  • engine/src/main/resources/org/destinationsol/assets/ui/mainGameScreen_desktop.ui
  • engine/src/main/resources/org/destinationsol/assets/ui/mainGameScreen_mobile.ui
  • engine/src/main/resources/org/destinationsol/assets/ui/mainMenu/creditsScreen.ui
  • engine/src/main/resources/org/destinationsol/assets/ui/mainMenu/inputMapScreen.ui
  • engine/src/main/resources/org/destinationsol/assets/ui/mainMenu/loadingScreen.ui
  • engine/src/main/resources/org/destinationsol/assets/ui/mainMenu/mainMenuScreen.ui
  • engine/src/main/resources/org/destinationsol/assets/ui/mainMenu/modulesScreen.ui
  • engine/src/main/resources/org/destinationsol/assets/ui/mainMenu/newGameScreen.ui
  • engine/src/main/resources/org/destinationsol/assets/ui/mainMenu/newShipScreen.ui
  • engine/src/main/resources/org/destinationsol/assets/ui/mainMenu/optionsScreen.ui
  • engine/src/main/resources/org/destinationsol/assets/ui/mainMenu/resolutionScreen.ui
  • engine/src/main/resources/org/destinationsol/assets/ui/mapScreen_desktop.ui
  • engine/src/main/resources/org/destinationsol/assets/ui/mapScreen_mobile.ui
  • engine/src/main/resources/org/destinationsol/assets/ui/menuScreen.ui
  • engine/src/main/resources/org/destinationsol/assets/ui/talkScreen.ui
  • engine/src/main/resources/org/destinationsol/assets/ui/tutorialScreen.ui
  • engine/src/main/resources/org/destinationsol/assets/ui/uiShipControlsScreen.ui
  • engine/src/main/resources/org/destinationsol/assets/ui/waypointCreationScreen.ui
  • engine/src/main/resources/org/destinationsol/module.json
  • engine/src/test/java/org/destinationsol/game/PlayerCreatorTest.java
  • engine/src/test/java/org/destinationsol/game/RubbleTest.java
  • engine/src/test/java/org/destinationsol/systems/DamageSystemTests/NonNegativeDamageTest.java
  • engine/src/test/java/org/destinationsol/systems/DamageSystemTests/NonNegativeHealthTest.java
  • engine/src/test/java/org/destinationsol/systems/DamageSystemTests/OnDamageTest.java
  • engine/src/test/java/org/destinationsol/systems/DamageSystemTests/ZeroHealthCausesDestructionTest.java
  • engine/src/test/java/org/destinationsol/systems/DestroyOnZeroHealthSystemTests/DestroyAtZeroHealthTest.java
  • engine/src/test/java/org/destinationsol/systems/DestructionSystemTests/DestructionTest.java
  • engine/src/test/java/org/destinationsol/systems/DestructionSystemTests/RemovalForOptimizationTest.java
  • engine/src/test/java/org/destinationsol/systems/LocationSystemTests/AngleUpdateTest.java
  • engine/src/test/java/org/destinationsol/systems/LocationSystemTests/PositionUpdateTest.java
  • engine/src/test/java/org/destinationsol/systems/LocationSystemTests/VelocityUpdateTest.java
  • engine/src/test/java/org/destinationsol/testingUtilities/InitializationUtilities.java
  • engine/src/test/java/org/destinationsol/testingUtilities/MockGL.java
  • engine/src/test/java/org/destinationsol/testsupport/AssetsHelperInitializer.java
  • engine/src/test/java/org/destinationsol/testsupport/TestModuleConfig.java
  • engine/src/test/java/org/destinationsol/world/GalaxyBuilderTest.java
  • engine/src/test/java/org/destinationsol/world/generators/BeltGeneratorTest.java
  • engine/src/test/java/org/destinationsol/world/generators/MazeGeneratorTest.java
  • engine/src/test/java/org/destinationsol/world/generators/PlanetGeneratorTest.java
  • engine/src/test/java/org/destinationsol/world/generators/SolarSystemGeneratorTest.java
  • gradle.properties
  • gradle/wrapper/gradle-wrapper.properties
  • groovyw
  • groovyw.bat
  • launcher/solOSX.sh
  • libs/subprojects.gradle
  • modules/core/assets/configs/factions.json
  • modules/core/assets/configs/systemsConfig.json
  • modules/core/assets/factions/desert.json
  • modules/core/assets/factions/imperial.json
  • modules/core/assets/factions/miner.json
  • modules/core/assets/factions/pirate.json
  • modules/core/assets/factions/techie.json
  • modules/core/assets/factions/trader.json
  • modules/core/assets/items/engines/desertBigEngine/desertBigEngine.json
  • modules/core/assets/items/engines/desertEngine/desertEngine.json
  • modules/core/assets/items/engines/imperialBigEngine/imperialBigEngine.json
  • modules/core/assets/items/engines/imperialEngine/imperialEngine.json
  • modules/core/assets/items/engines/minerEngine/minerEngine.json
  • modules/core/assets/items/engines/pirateBigEngine/pirateBigEngine.json
  • modules/core/assets/items/engines/pirateEngine/pirateEngine.json
  • modules/core/assets/items/engines/techieEngine/techieEngine.json
  • modules/core/assets/items/guns/minerGun/minerGun.json
  • modules/core/assets/items/types.json
  • modules/core/assets/mazes/spiralMazeLayout.json
  • modules/core/module.json
  • settings.gradle
  • templates/build.gradle

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@NicholasBatesNZ
NicholasBatesNZ changed the base branch from develop to master August 14, 2026 22:53
@NicholasBatesNZ
NicholasBatesNZ changed the base branch from master to develop August 14, 2026 22:53
@NicholasBatesNZ
NicholasBatesNZ dismissed their stale review August 14, 2026 23:48

I've implemented the changes myself (well Claude but whatever)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants